Current databases are typically designed for the storage and interface characteristics of hard-disk devices. An alternative form of storage device, however, is a flash device. While flash-based storage devices were not common in previous databases, recent technology improvements in flash device storage capacities have made the use of flash devices in databases more feasible. The increasing use of mobile and low power devices further motivates the use of flash devices in such mobile devices because hard disks may be prohibitively heavy or energy intensive.
A key feature of flash storage devices is that their characteristics vary depending on the interface used to access the flash device. A flash device may be accessed through many different interface types, such as in a USB (Universal Serial Bus) stick, in a compact flash card, a secure digital (SD) card, a mini-SD card, a micro-SD card, or in a printed circuit board of a mobile or embedded device. While speed of data transfer across the interface may not be a bottleneck, differences exist in the nature of low level flash management implemented behind the interface by the flash device manufacturer. The performance of the flash-based database and the underlying indexing algorithm depends on the characteristics of the flash device as observed through each specific interface.
Because the characteristics of flash storage devices are significantly different from hard disks, the use of indexing methods designed for hard disk storage leads to performance penalties. Although this issue may be addressed by designing indexing methods optimized for flash storage device with a given interface, it is often not known in advance which of the flash device interfaces the user of the mobile or embedded device may use. Also, the same database product may have to be used on multiple mobile and embedded devices, each using a different interface to access the flash device.
Performance of a flash storage device also depends on the storage workload characteristics. The term workload characteristics refers to the number of reads and writes of the data and index structure, and depends on (1) data query types, (i.e., how often the data is read, how often it is changed or added), and (2) the correlation characteristics of the data stored that affect the structure of the index tree built by the database and that cause the number of reads and writes in the update process to vary. Unfortunately, existing database products are typically not well-suited for flash storage device characteristics, particularly for storage workloads that may be highly write intensive or that require a substantial degree of flexibility.